package com.comm.tmpl.service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import jcf.hanyang.dao.CommonDAO;
import jcf.util.FileUtil;
import jcf.util.properties.PropertyService;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.comm.tmpl.qry.CdSaengseongGiQry;

/**
 * 코드생성을 위한 조회 서비스
 * @Author : 최성원
 * @Company : Daewoo Information Systems Co., Ltd.
 * @Copyright : Daewoo Information Systems Co., Copyright (c) 2010
 * @Create : 2011년 8월 2일
 * @DSDM_UML20_PROFILE_x__y_Service_x__y_Class_ID CdSaengseongGiSvc
 * @Title : 코드생성 조회 서비스
 * @stereotype Service
 * @version 1.0
 */
@Service
public class CdSaengseongGiSvc {
	/*#com.comm.tmpl.model.CdSaengseongGi cdSaengseongGi*/
	
	//@Autowired(required=true)
	//private PropertyService propertyService;

	
	@Autowired(required=true)
	private CommonDAO dao;
	
	/**
     * Action 클래스 조회
     * @Author : 최성원
     * @Create : 2011년 5월 10일
     * @Description : Action 클래스 이름을  조회.
     * @Title : Action 클래스 조회
     * @DSDM_UML20_PROFILE_x__y_ServiceMethod_x__y_IF CdSaengseongGiQry.selectActionNm()
     * @stereotype ServiceMethod 
     */
	public List getActionNm(Map paramMap) {
		return dao.queryForList(CdSaengseongGiQry.selectActionNm(), paramMap);
	}
	
	/**
     * Action 클래스 이외의 기타 클래스 조회
     * @Author : 최성원
     * @Create : 2011년 5월 10일
     * @Description : Action 클래스 이외의 기타 클래스 조회
     * @Title :  기타  클래스 조회
     * @DSDM_UML20_PROFILE_x__y_ServiceMethod_x__y_IF CdSaengseongGiQry.selectEtcClassNm()
     * @stereotype ServiceMethod 
     */
	public List getEtcClassNm(Map paramMap) {
		return dao.queryForList(CdSaengseongGiQry.selectEtcClassNm(), paramMap);
	}
	
	/**
     * 테이블 목록을 조회한다.
     * @Author : 최성원
     * @Create : 2011년 5월 10일
     * @Description : 테이블 목록을 조회한다.
     * @Title :  테이블 목록 조회 
     * @DSDM_UML20_PROFILE_x__y_ServiceMethod_x__y_IF CdSaengseongGiQry.selectTableList()
     * @stereotype ServiceMethod 
     */
	public List getTableJeongbo(Map paramMap) {
		return dao.queryForList(CdSaengseongGiQry.selectTableList(), paramMap);
	}
	
	/**
     * 컬럼 목록을 조회한다.
     * @Author : 최성원
     * @Create : 2011년 5월 10일
     * @Description : 컬럼 목록을 조회한다.
     * @Title :  컬럼 목록 조회 
     * @DSDM_UML20_PROFILE_x__y_ServiceMethod_x__y_IF CdSaengseongGiQry.selectColumnList()
     * @stereotype ServiceMethod 
     */
	public List getColumnJeongbo(Map paramMap) {
		return dao.queryForList(CdSaengseongGiQry.selectColumnList(), paramMap);
	}
	
	/**
     * 파일을 읽어 모델템플릿을 조회한다.
     * @Author : 최성원
     * @Create : 2011년 5월 10일
     * @Description : 모델템플릿을 조회한다.
     * @Title :  모델 템플릿 조회 
     * @DSDM_UML20_PROFILE_x__y_ServiceMethod_x__y_IF N/A
     * @stereotype ServiceMethod 
     */
	public List getModelTmpl(Map paramMap) {
		List modelTmplList = new ArrayList();
		Map modelTmpl = new HashMap();
//
//		String basePath = propertyService.getString("file_base_path");
		String basePath = "C:/Project/nhyu/file";
		//if(basePath == null){
		//	basePath = "C:/Project/nhyu/file";
		//}
		String fileName = basePath + "/" + "Model";
		
		FileUtil fileUtil = new FileUtil();
		
		byte stream[] = fileUtil.getFileToByteArray(fileName);
		
		modelTmpl.put("tmplSource", new String(stream));
		
		modelTmplList.add(modelTmpl);
		return modelTmplList;
	}
	
	/**
     * 파일을 읽어  Groovi 템플릿을 조회한다.
     * @Author : 최성원
     * @Create : 2011년 5월 10일
     * @Description : Groovi 템플릿을 조회한다.
     * @Title :  Groovi 템플릿 조회 
     * @DSDM_UML20_PROFILE_x__y_ServiceMethod_x__y_IF N/A
     * @stereotype ServiceMethod 
     */
	public List getGroviTmpl(Map paramMap) {
		List groviTmplList = new ArrayList();
		Map groviTmpl = new HashMap();
//
//		String basePath = propertyService.getString("file_base_path");
		String basePath = "C:/Project/nhyu/file";
		//if(basePath == null){
		//	basePath = "C:/Project/nhyu/file";
		//}
		String fileName = basePath + "/" + "Groovi";
		
		FileUtil fileUtil = new FileUtil();
		
		byte stream[] = fileUtil.getFileToByteArray(fileName);
		
		groviTmpl.put("tmplSource", new String(stream));
		
		groviTmplList.add(groviTmpl);
		return groviTmplList;
	}
	
	/**
     * 파일을 읽어  Service 템플릿을 조회한다.
     * @Author : 최성원
     * @Create : 2011년 5월 10일
     * @Description : Service 템플릿을 조회한다.
     * @Title :  Service 템플릿 조회 
     * @DSDM_UML20_PROFILE_x__y_ServiceMethod_x__y_IF N/A
     * @stereotype ServiceMethod 
     */
	public List getServiceTmpl(Map paramMap) {
		List serviceTmplList = new ArrayList();
		Map serviceTmpl = new HashMap();
//
//		String basePath = propertyService.getString("file_base_path");
		String basePath = "C:/Project/nhyu/file";
		//if(basePath == null){
		//	basePath = "C:/Project/nhyu/file";
		//}
		String fileName = basePath + "/" + "Service";
		
		FileUtil fileUtil = new FileUtil();
		
		byte stream[] = fileUtil.getFileToByteArray(fileName);
		
		serviceTmpl.put("tmplSource", new String(stream));
		
		serviceTmplList.add(serviceTmpl);
		return serviceTmplList;
	}
	
	/**
     * 파일을 읽어  Action 템플릿을 조회한다.
     * @Author : 최성원
     * @Create : 2011년 5월 10일
     * @Description : Action 템플릿을 조회한다.
     * @Title :  Action 템플릿 조회 
     * @DSDM_UML20_PROFILE_x__y_ServiceMethod_x__y_IF N/A
     * @stereotype ServiceMethod 
     */
	public List getActionTmpl(Map paramMap) {
		List actionTmplList = new ArrayList();
		Map actionTmpl = new HashMap();
//
//		String basePath = propertyService.getString("file_base_path");
		String basePath = "C:/Project/nhyu/file";
		//if(basePath == null){
		//	basePath = "C:/Project/nhyu/file";
		//}
		String fileName = basePath + "/" + "Action";
		
		FileUtil fileUtil = new FileUtil();
		
		byte stream[] = fileUtil.getFileToByteArray(fileName);
		
		actionTmpl.put("tmplSource", new String(stream));
		
		actionTmplList.add(actionTmpl);
		return actionTmplList;
	}
	
	/**
     * 파일을 읽어  Miplatform 템플릿을 조회한다.
     * @Author : 최성원
     * @Create : 2011년 5월 10일
     * @Description : Miplatform 템플릿을 조회한다.
     * @Title :  Miplatform 템플릿 조회 
     * @DSDM_UML20_PROFILE_x__y_ServiceMethod_x__y_IF N/A
     * @stereotype ServiceMethod 
     */
	public List getMiplatformTmpl(Map paramMap) {
		List miplatformTmplList = new ArrayList();
		Map miplatformTmpl = new HashMap();
//
//		String basePath = propertyService.getString("file_base_path");
		String basePath = "C:/Project/nhyu/file";
		//if(basePath == null){
		//	basePath = "C:/Project/nhyu/file";
		//}
		String fileName = basePath + "/" + "MiPlatform";
		
		FileUtil fileUtil = new FileUtil();
		
		byte stream[] = fileUtil.getFileToByteArray(fileName);
		
		miplatformTmpl.put("tmplSource", new String(stream));
		
		miplatformTmplList.add(miplatformTmpl);
		return miplatformTmplList;
	}
	
	/**
     * 파일을 읽어  JQuery 템플릿을 조회한다.
     * @Author : 최성원
     * @Create : 2011년 5월 10일
     * @Description : JQuery 템플릿을 조회한다.
     * @Title :  JQuery 템플릿 조회 
     * @DSDM_UML20_PROFILE_x__y_ServiceMethod_x__y_IF N/A
     * @stereotype ServiceMethod 
     */
	public List getJqueryTmpl(Map paramMap) {
		List jqueryTmplList = new ArrayList();
		Map jqueryTmpl = new HashMap();
//
//		String basePath = propertyService.getString("file_base_path");
		String basePath = "C:/Project/nhyu/file";
		//if(basePath == null){
		//	basePath = "C:/Project/nhyu/file";
		//}
		String fileName = basePath + "/" + "JQuery";
		
		FileUtil fileUtil = new FileUtil();
		
		byte stream[] = fileUtil.getFileToByteArray(fileName);
		
		jqueryTmpl.put("tmplSource", new String(stream));
		
		jqueryTmplList.add(jqueryTmpl);
		return jqueryTmplList;
	}
}
